<?php
/**
 * 微信公众号服务
 * @App	
 * @Group 
 * @Action WeChatService
 * @author lilei
 * @date 2018年8月20日
 *
 */
namespace app\common\service\wechat;
use app\common\library\CommonFun;

class WeChatService {
	/**
	 * 微信ID
	 * @var string
	 */
	public static $AppID = "";
	
	/**
	 * 微信Secret
	 * @var string
	 */
	public static $AppSecret = "";
	
	/**
	 * 服务器令牌(Token)
	 * @var string
	 */
	public static $Token = "";
	
	/**
	 * 服务器消息加解密密钥
	 * @var string
	 */
	public static $Encodingaeskey = "";
	
	/**
	 * 初始化微信配置
	 * @var array
	 */
	public static $WxConfig = array();
	
	/**
	 * WeChatDeveloper 所需option
	 * @var array
	 */
	public static $option = array();
	
	/**
	 * 构造函数
	 * @param string $app_type
	 */
	public function __construct( $app_type = 'HoldAppWeChat' )
	{
		self::init( $app_type );
		$this->__init();
	}
	
	/**
	 * 初始化函数
	 * @param string $app_type
	 */
	public static function init( $app_type = 'HoldAppWeChat' )
	{
		// 初始化微信配置
		CommonFun::get_other_config( 'WxConfig', 2 );
		$wx_config = self::$WxConfig = C( $app_type );
		self::$AppID = $wx_config['AppID'];
		self::$AppSecret = $wx_config['AppSecret'];
		self::$Token = $wx_config['Token'];
		self::$Encodingaeskey = $wx_config['Encodingaeskey'];
		// 构建option
		self::$option = [
				'token'          => self::$Token,
				'appid'          => self::$AppID,
				'appsecret'      => self::$AppSecret,
				'encodingaeskey' => self::$Encodingaeskey,
				// 配置商户支付参数（可选，在使用支付功能时需要）
				'mch_id'         => '',
				'mch_key'        => '',
				// 配置商户支付双向证书目录（可选，在使用退款|打款|红包时需要）
				'ssl_key'        => '',
				'ssl_cer'        => '',
				// 缓存目录配置（可选，需拥有读写权限）
				'cache_path'     => RUNTIME_PATH,
		];
	}
	
	/**
	 * 返回单例模型
	 * @return static
	 */
	public static function getInstance() {
		$param = func_get_args ();
		return CommonFun::get_instance_of ( get_called_class (), '', $param );
	}
	
	/**
	 * 子类初始化方法
	 */
	public function __init() {
	} 
	
}